home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / DDJ0992.ARJ / LOG.C < prev    next >
Text File  |  1991-12-19  |  2KB  |  71 lines

  1. /* ------------ log .c ------------ */
  2.  
  3. #include "dflat.h"
  4.  
  5. #ifdef INCLUDE_LOGGING
  6.  
  7. static char *message[] = {
  8.     #undef DFlatMsg
  9.     #define DFlatMsg(m) " " #m,
  10.     #include "dflatmsg.h"
  11.     NULL
  12. };
  13.  
  14. static FILE *log = NULL;
  15. extern DBOX Log;
  16.  
  17. void LogMessages (WINDOW wnd, MESSAGE msg, PARAM p1, PARAM p2)
  18. {
  19.     if (log != NULL && message[msg][0] != ' ')
  20.         fprintf(log,
  21.             "%-20.20s %-12.12s %-20.20s, %5.5ld, %5.5ld\n",
  22.             wnd ? (GetTitle(wnd) ? GetTitle(wnd) : "") : "",
  23.             wnd ? ClassNames[GetClass(wnd)] : "",
  24.             message[msg]+1, p1, p2);
  25. }
  26.  
  27. static int LogProc(WINDOW wnd, MESSAGE msg, PARAM p1, PARAM p2)
  28. {
  29.     WINDOW cwnd = ControlWindow(&Log, ID_LOGLIST);
  30.     char **mn = message;
  31.     switch (msg)    {
  32.         case INITIATE_DIALOG:
  33.             AddAttribute(cwnd, MULTILINE | VSCROLLBAR);
  34.             while (*mn)    {
  35.                 SendMessage(cwnd, ADDTEXT, (PARAM) (*mn), 0);
  36.                 mn++;
  37.             }
  38.             SendMessage(cwnd, SHOW_WINDOW, 0, 0);
  39.             break;
  40.         case COMMAND:
  41.             if ((int) p1 == ID_OK)    {
  42.                 int item;
  43.                 int tl = GetTextLines(cwnd);
  44.                 for (item = 0; item < tl; item++)
  45.                     if (ItemSelected(cwnd, item))
  46.                         mn[item][0] = LISTSELECTOR;
  47.             }
  48.             break;
  49.         default:
  50.             break;
  51.     }
  52.     return DefaultWndProc(wnd, msg, p1, p2);
  53. }
  54.  
  55. void MessageLog(WINDOW wnd)
  56. {
  57.     if (DialogBox(wnd, &Log, TRUE, LogProc))    {
  58.         if (CheckBoxSetting(&Log, ID_LOGGING))    {
  59.             log = fopen("DFLAT.LOG", "wt");
  60.             SetCommandToggle(&MainMenu, ID_LOG);
  61.         }
  62.         else if (log != NULL)    {
  63.             fclose(log);
  64.             log = NULL;
  65.             ClearCommandToggle(&MainMenu, ID_LOG);
  66.         }
  67.     }
  68. }
  69.  
  70. #endif
  71.